
///////////////////////////////////////////////////////////////////////////////
//
//  Copyright (c) 2007, Arizona State University
//  All rights reserved.
//  BSD License: http://www.opensource.org/licenses/bsd-license.html
//  Author(s): Adam Kubach
//
///////////////////////////////////////////////////////////////////////////////

#include "WRF/WrfModel/Channel.h"

#include "Usul/Factory/RegisterCreator.h"

USUL_FACTORY_REGISTER_CREATOR ( Channel );

///////////////////////////////////////////////////////////////////////////////
//
//  Constructor.
//
///////////////////////////////////////////////////////////////////////////////

Channel::Channel () :
  BaseClass (),
  _name ( "" ),
  _index ( 0 ),
  _min ( 0.0 ),
  _max ( 0.0 ),
  SERIALIZE_XML_INITIALIZER_LIST
{
  this->_addMember ( "name", _name );
  this->_addMember ( "index", _index );
  this->_addMember ( "min", _min );
  this->_addMember ( "max", _max );
}


///////////////////////////////////////////////////////////////////////////////
//
//  Destructor.
//
///////////////////////////////////////////////////////////////////////////////

Channel::~Channel ()
{
}


///////////////////////////////////////////////////////////////////////////////
//
//  Set the name of the channel.
//
///////////////////////////////////////////////////////////////////////////////

void Channel::name ( const std::string& name )
{
  _name = name;
}


///////////////////////////////////////////////////////////////////////////////
//
//  Get the name of the channel.
//
///////////////////////////////////////////////////////////////////////////////

const std::string& Channel::name () const
{
  return _name;
}


///////////////////////////////////////////////////////////////////////////////
//
//  Set the index of the channel.
//
///////////////////////////////////////////////////////////////////////////////

void Channel::index ( unsigned int index )
{
  _index = index;
}


///////////////////////////////////////////////////////////////////////////////
//
//  Get the index of the channel.
//
///////////////////////////////////////////////////////////////////////////////

unsigned int Channel::index () const
{
  return _index;
}


///////////////////////////////////////////////////////////////////////////////
//
//  Set the min value of the channel.
//
///////////////////////////////////////////////////////////////////////////////

void Channel::min ( double min )
{
  _min = min;
}


///////////////////////////////////////////////////////////////////////////////
//
//  Get the min value of the channel.
//
///////////////////////////////////////////////////////////////////////////////

double Channel::min () const
{
  return _min;
}


///////////////////////////////////////////////////////////////////////////////
//
//  Set the min value of the channel.
//
///////////////////////////////////////////////////////////////////////////////

void Channel::max ( double max )
{
  _max = max;
}


///////////////////////////////////////////////////////////////////////////////
//
//  Get the min value of the channel.
//
///////////////////////////////////////////////////////////////////////////////

double Channel::max () const
{
  return _max;
}
